home *** CD-ROM | disk | FTP | other *** search
/ PCMania 39 / PCMania CD39_2.iso / pcmania / render39 / arch / #arch.pov < prev    next >
Text File  |  1995-10-28  |  30KB  |  802 lines

  1. /* POVRAY DESCRIPTION FILE
  2.    SCENE DESCRIPTION : An architectural interior in the Romanesque style.
  3.                        The intent is to create a romantic interior of endless
  4.                        volume.
  5.    DATE CREATED : 14.10.95
  6.    AUTHOR : Nathan O'Brien
  7.             33/392 Jones St Ultimo 2007 Australia
  8.             phone : 612 966 01102  (AH) 
  9.             fax   : 612 261 8932
  10.             email : no13@ozemail.com.au
  11.    RENDERING TIME : 23 hours on a Pentium 90 with 16Mb of RAM.
  12.                     Output file : 640 x 480
  13.                     Rendering options : +a
  14. */
  15.  
  16. #include "colors.inc"
  17. #include "textures.inc"
  18. #include "stones.inc"
  19. #include "fov.inc"
  20.  
  21. camera {
  22.         location <5000,3000,-7000>
  23.         look_at  <2000,3000,0>
  24.         direction <0,0,FoV_120>
  25. }
  26.  
  27. light_source {<5000,4000,-7000> color Gray80}
  28. light_source {<6000,20000,-8000> color White}
  29.  
  30. /* NON 'WHITE' LIGHT SOURCE */
  31.  
  32. #declare soft_light = color red .28 green .21 blue .09
  33.  
  34. /* THE BLACK/WHITE BANDED TEXTURE */
  35.  
  36. #declare tex3=
  37. texture{pigment{
  38.         gradient y
  39.         color_map{
  40.         [0.1  color rgbf <1,1,1,.75>]
  41.         [0.25 color rgbf <1,1,1,.75>]
  42.         [0.25 color rgbf <0,0,0,.3>]
  43.         [0.75 color rgbf <0,0,0,.3>]
  44.         [0.75 color rgbf <1,1,1,.75>]
  45.         [1.0  color rgbf <1,1,1,.75>]
  46.         }
  47.         scale <800,800,800>
  48. }}
  49.  
  50. /* THE ARCH */
  51.  
  52. #declare arch_part=
  53. difference {
  54.         box {<-2037,2192,300><3963,5300,-300>}
  55.         cylinder {<0,0,400><0,0,-400>,4099}
  56.         box {<-100,0,400><7000,1800,-400> rotate <0,0,-15> translate <-2037,5300,0>}
  57.         box {<-2500,3800,400><-1000,2300,-400>}
  58. }
  59.  
  60. #declare arch=
  61. union {
  62. object {arch_part texture{Stone8 scale<600,600,600>} texture{tex3 rotate <0,0,75>}}
  63. difference {
  64.         box {<-2037,3692,220><3963,5559,-220> texture{Stone8 scale<600,600,600>}}
  65.         box {<-100,0,400><7000,1800,-400> rotate <0,0,-15> translate <-2037,5559,0> texture{Stone8 scale<600,600,600>}}
  66.         box {<-100,0,400><7000,-3000,-400> rotate <0,0,-15> translate <-2037,5300,0> texture{Stone8 scale<600,600,600>}}
  67. }
  68. box {<-2037,5693,220><-1537,5424,-220> texture{Stone8 scale<600,600,600>}}
  69. box {<3463,4085,220><3963,3951,-220> texture{Stone8 scale<600,600,600>}}
  70. }
  71.  
  72. /* THE COLUMN */
  73.  
  74. #declare entab1=
  75. union{
  76.         box {<-150,0,-150><150,50,150>}
  77.         box {<-165,50,-165><165,100,165>}
  78.         box {<-180,100,-180><180,175,180>}
  79.         box {<-195,175,-195><195,190,195>}
  80.         box {<-210,190,-210><210,205,210>}
  81.         box {<-195,205,-195><195,445,195>}
  82.         box {<-210,445,-210><210,470,210>}
  83.         box {<-260,520,-260><260,570,260>}
  84.         box {<-275,570,-275><275,585,275>}
  85.         box {<-290,585,-290><290,600,290>}
  86.         difference {
  87.                 box {<-260,470,-260><260,520,260>}
  88.                 box {<0,1000,1000><1000,-1000,-1000> rotate <0,0,-45> translate <210,470,0>}
  89.                 box {<0,1000,1000><1000,-1000,-1000> rotate <0,0,-45> translate <210,470,0> rotate <0,90,0>}
  90.                 box {<0,1000,1000><1000,-1000,-1000> rotate <0,0,-45> translate <210,470,0> rotate <0,180,0>}
  91.                 box {<0,1000,1000><1000,-1000,-1000> rotate <0,0,-45> translate <210,470,0> rotate <0,270,0>}
  92.         }
  93. }
  94.  
  95. #declare entab2=
  96. union{
  97.         box {<-200,255,-200><200,280,200>}
  98.         box {<-100,230,-210><-50,445,210>}
  99.         box {<-25,230,-210><25,445,210>}
  100.         box {<50,230,-210><100,445,210>}
  101.         box {<-210,230,-100><210,445,-50>}
  102.         box {<-210,230,-25><210,445,25>}
  103.         box {<-210,230,50><210,445,100>}
  104.         box {<-25,470,-275><25,555,275>}
  105.         box {<-275,470,-25><275,555,25>}
  106.         box {<-40,555,-290><40,570,290>}
  107.         box {<-290,555,-40><290,570,40>}
  108. }
  109.  
  110. #declare entab=
  111. union{
  112. object {entab1}
  113. object {entab2 texture {Stone13 scale <600,600,600>}}
  114. }
  115.  
  116. #declare column_head=
  117. union{
  118.         difference {
  119.                 cylinder {<150,75,170><150,75,50>,75}
  120.                 box {<150,170,180><0,-30,40>}
  121.                 torus {62.5,15 sturm rotate <90,0,0> translate <150,75,170>}
  122.                 torus {37.5,15 sturm rotate <90,0,0> translate <150,75,170>}
  123.                 torus {12.5,15 sturm rotate <90,0,0> translate <150,75,170>}
  124.         }
  125.         difference {
  126.                 cylinder {<150,62.5,170><150,62.5,50>,62.5}
  127.                 box {<150,170,180><250,-30,40>}
  128.                 torus {50,15 sturm rotate <90,0,0> translate <150,62.5,170>}
  129.                 torus {25,15 sturm rotate <90,0,0> translate <150,62.5,170>}
  130.         }
  131. }
  132.  
  133. #declare head_half=
  134. union{
  135.         difference {
  136.                 box {<-150,125,170><150,150,75>}
  137.                 cylinder {<-175,137.5,170><175,137.5,170>,15}
  138.         }
  139.         object {column_head}
  140.         object {column_head scale <-1,1,1>}
  141. }
  142.  
  143. #declare capital=
  144. union {
  145.         object {head_half}
  146.         object {head_half scale <1,1,-1>}
  147. }
  148.  
  149. #declare cut_out=
  150. merge{
  151. cylinder {<150,250,0><150,2195,0>,25}
  152. sphere {<150,250,0>,25}
  153. sphere {<150,2195,0>,25}
  154. sphere {<160,2305,0>,25}
  155. }
  156.  
  157. #declare column=
  158. union{
  159. box {<-200,0,-200><200,50,200>}
  160. torus {175,25 sturm translate <0,75,0>}
  161. cylinder {<0,100,0><0,115,0>,175}
  162. difference {
  163.         cylinder {<0,115,0><0,155,0>,175}
  164.         torus {175,20 sturm translate <0,135,0>}
  165. }
  166. cylinder {<0,155,0><0,170,0>,175}
  167. cylinder {<0,170,0><0,185,0>,165}
  168. difference {
  169.         cylinder {<0,185,0><0,2385,0>,150}
  170.         object {cut_out}
  171.         object {cut_out rotate <0,22.5,0>}
  172.         object {cut_out rotate <0,45,0>}   
  173.         object {cut_out rotate <0,67.5,0>} 
  174.         object {cut_out rotate <0,90,0>} 
  175.         object {cut_out rotate <0,112.5,0>} 
  176.         object {cut_out rotate <0,135,0>} 
  177.         object {cut_out rotate <0,157.5,0>} 
  178.         object {cut_out rotate <0,180,0>} 
  179.         object {cut_out rotate <0,202.5,0>} 
  180.         object {cut_out rotate <0,225,0>} 
  181.         object {cut_out rotate <0,247.5,0>} 
  182.         object {cut_out rotate <0,270,0>} 
  183.         object {cut_out rotate <0,292.5,0>} 
  184.         object {cut_out rotate <0,315,0>} 
  185.         object {cut_out rotate <0,337.5,0>} 
  186. }   
  187. box {<165,2385,165><-165,2400,-165>}
  188. object {capital translate <0,2220,0>}
  189. object {entab translate <0,2400,0>}
  190. }
  191.  
  192. /* THE BALUSTRADE */
  193.  
  194. #declare piece=
  195. union{
  196.         box {<-200,25,-200><200,50,200>}
  197.         torus {175,25 sturm translate <0,75,0>}
  198.         difference {
  199.                 cylinder {<0,100,0><0,975,0>,125}
  200.                 torus {125,75 sturm translate <0,175,0>}
  201.                 torus {125,75 sturm translate <0,900,0>}
  202.         }
  203.         sphere {<0,537.5,0>,237.5}
  204.         torus {175,25 sturm translate <0,1000,0>}
  205.         box {<-200,1025,-200><200,1050,200>}
  206. }
  207.  
  208. #declare balustrade=
  209. union{
  210.         box {<-225,0,0><225,25,4400>}
  211.         box {<200,1050,0><200,1075,4400>}
  212.         box {<225,1075,0><225,1175,4400>}
  213.         box {<200,1175,0><200,1200,4400>}
  214.         object {piece texture {Stone16 scale <600,600,600>} translate <0,0,400>}
  215.         object {piece texture {Stone16 scale <600,600,600>} translate <0,0,1000>}
  216.         object {piece texture {Stone16 scale <600,600,600>} translate <0,0,1600>}
  217.         object {piece texture {Stone16 scale <600,600,600>} translate <0,0,2200>}
  218.         object {piece texture {Stone16 scale <600,600,600>} translate <0,0,2800>}
  219.         object {piece texture {Stone16 scale <600,600,600>} translate <0,0,3400>}
  220.         object {piece texture {Stone16 scale <600,600,600>} translate <0,0,4000>}
  221. }
  222.  
  223. /* THE STAIR CASE */
  224.  
  225. #declare tread=
  226. union {
  227.         box {<0,0,0><450,-200,4500>}
  228.         cylinder {<450,-25,0><450,-25,4500>,25}
  229.         object {piece texture {Stone16 scale<600,600,600>} translate <225,-25,4275>}
  230.         object {piece texture {Stone16 scale<600,600,600>} translate <225,-25,225>}
  231.         box {<-200,1025,-200><200,1203,200> texture{Stone16 scale<600,600,600>} translate <225,0,4275>}
  232.         box {<-200,1025,-200><200,1203,200> texture{Stone16 scale<600,600,600>} translate <225,0,225>}
  233. }
  234.  
  235. #declare rail=
  236. union{
  237.         box {<0,0,-200><8300,25,200>}
  238.         box {<0,25,-225><8300,165,225>}
  239.         box {<0,165,-200><8300,190,200>}
  240. }
  241.  
  242. #declare stair=
  243. union{
  244.         object {tread texture{Stone8 scale<600,600,600>}}
  245.         object {tread texture{Stone8 scale<600,600,600>} translate<450,-200,0>}
  246.         object {tread texture{Stone8 scale<600,600,600>} translate<900,-400,0>}
  247.         object {tread texture{Stone8 scale<600,600,600>} translate<1350,-600,0>}
  248.         object {tread texture{Stone8 scale<600,600,600>} translate<1800,-800,0>}
  249.         object {tread texture{Stone8 scale<600,600,600>} translate<2250,-1000,0>}
  250.         object {tread texture{Stone8 scale<600,600,600>} translate<2700,-1200,0>}
  251.         object {tread texture{Stone8 scale<600,600,600>} translate<3150,-1400,0>}
  252.         object {tread texture{Stone8 scale<600,600,600>} translate<3600,-1600,0>}
  253.         object {tread texture{Stone8 scale<600,600,600>} translate<4050,-1800,0>}
  254.         object {tread texture{Stone8 scale<600,600,600>} translate<4500,-2000,0>}
  255.         object {tread texture{Stone8 scale<600,600,600>} translate<4950,-2200,0>}
  256.         object {tread texture{Stone8 scale<600,600,600>} translate<5400,-2400,0>}
  257.         object {tread texture{Stone8 scale<600,600,600>} translate<5850,-2600,0>}
  258.         object {tread texture{Stone8 scale<600,600,600>} translate<6300,-2800,0>}
  259.         object {tread texture{Stone8 scale<600,600,600>} translate<6750,-3000,0>}
  260.         object {tread texture{Stone8 scale<600,600,600>} translate<7200,-3200,0>}
  261.         object {tread texture{Stone8 scale<600,600,600>} translate<7650,-3400,0>}
  262.         object {tread texture{Stone8 scale<600,600,600>} translate<8100,-3600,0>}
  263.         object {rail texture{Stone16 scale<600,600,600>} rotate <0,0,-23.9625> translate <0,1213.8889,4275>}
  264.         object {rail texture{Stone16 scale<600,600,600>} rotate <0,0,-23.9625> translate <0,1213.8889,225>}
  265. }
  266.  
  267. /* THE FLOOR PATTERN */
  268.  
  269. #declare pattern_half=
  270. union {
  271.         triangle {<-5500,.1,2500><-3450,.1,2500><-4235.8418,.1,2174.4937> texture {Stone21 scale<400,400,400>}}
  272.         triangle {<-4899.5689,.1,1050.4311><-3450,.1,2500><-4235.8418,.1,2174.4937> texture {Stone24 scale<600,600,600>}}
  273.         triangle {<-4899.5689,.1,1050.4311><-3450,.1,2500><-3775.5063,.1,1714.1582> texture {Stone21 scale<400,400,400>}}
  274.         triangle {<-3450,.1,450><-3450,.1,2500><-3775.5063,.1,1714.1582> texture {Stone24 scale<600,600,600>}}
  275.         triangle {<-3450,.1,450><-3450,.1,2500><-3124.4937,.1,1714.1582> texture {Stone21 scale<400,400,400>}}
  276.         triangle {<-2000.4311,.1,1050.4311><-3450,.1,2500><-3124.4937,.1,1714.1582> texture {Stone24 scale<600,600,600>}}
  277.         triangle {<-2000.4311,.1,1050.4311><-3450,.1,2500><-2664.1582,.1,2174.4937> texture {Stone21 scale<400,400,400>}}
  278.         triangle {<-1400,.1,2500.4311><-3450,.1,2500><-2664.1582,.1,2174.4937> texture {Stone24 scale<600,600,600>}}
  279.         
  280.         triangle {<-4867.9209,.1,2337.2468><-4567.7054,.1,1612.4624><-5343.953,.1,1715.499> texture {Stone3 scale <600,600,600>}}
  281.         triangle {<-4337.5376,.1,1382.2946><-3612.7532,.1,1082.0791><-4234.501,.1,606.047> texture {Stone3 scale <600,600,600>}}
  282.         triangle {<-3287.2468,.1,1082.0791><-2562.4624,.1,1382.2946><-2665.499,.1,606.047> texture {Stone3 scale <600,600,600>}}
  283.         triangle {<-2332.2946,.1,1612.4624><-2032.0791,.1,2337.2468><-1556.047,.1,1715.499> texture {Stone3 scale <600,600,600>}}
  284.  
  285.         difference {
  286.                 cylinder {<-3450,0,2500><-3450,-1000,2500>,2050 texture{Stone8 scale <600,600,600>}}
  287.                 box {<-9000,100,2500><9000,-9000,9000> texture{Stone8 scale <600,600,600>}}
  288.         }
  289.         difference {
  290.                 cylinder {<-3450,0,2500><-3450,-1000,2500>,2350 texture{Stone19 scale <600,600,600>}}
  291.                 cylinder {<-3450,100,2500><-3450,-1100,2500>,2050 texture {Stone19 scale <600,600,600>}}
  292.                 box {<-9000,120,2500><9000,-9000,9000> texture {Stone19 scale<600,600,600>}}
  293.         }
  294. }
  295.  
  296. #declare floor_half=
  297. union {        
  298.         difference {
  299.                 union {
  300.                         box {<-7200,0,2500><300,-5,600> texture{Stone8 scale <600,600,600>}}
  301.                         box {<-5900,0,600><-1300,-5,150> texture{Stone8 scale<600,600,600>}}
  302.                 }
  303.                 cylinder {<-3450,10,2500><-3450,-50,2500>,2350 texture{Stone8 scale<600,600,600>}}
  304.         }
  305.         box {<-7800,0,600><-5900,-5,0> texture{Stone19 scale<600,600,600>}}
  306.         box {<-5900,0,150><-1300,-5,0> texture{Stone19 scale<600,600,600>}}
  307.         box {<-1300,0,600><600,-5,0>   texture{Stone19 scale<600,600,600>}}
  308.         box {<300,0,600><600,-5,2500>  texture{Stone19 scale<600,600,600>}}
  309. }
  310.  
  311. #declare main_floor=
  312. union {
  313. object {pattern_half}
  314. object {pattern_half rotate<0,180,0> translate<-6900,0,0>}
  315. object {floor_half}
  316. object {floor_half scale <1,1,-1>}
  317. }
  318.  
  319. /* THE LAMP */
  320.  
  321. #declare fin=
  322. box {<-10,426,-220><10,526,-170>}
  323.  
  324. #declare trim=
  325. union {
  326.         torus {87.5,12.5 sturm rotate <90,0,0> translate <0,50,407>}
  327.         cylinder {<0,50,400><0,50,420>,70
  328.         texture{Polished_Brass}
  329.         normal {bump_map {gif "flower.gif" bump_size 5 once}
  330.         scale<140,140,140>
  331.         translate<-70,-20,0>
  332.         }
  333.         }   // add bump map
  334. }
  335.  
  336. #declare trim2=
  337. union {
  338.         torus {87.5,12.5 sturm rotate <90,0,0> translate <0,50,407>}
  339.         cylinder {<0,50,400><0,50,420>,70}  
  340. }
  341.  
  342.  
  343. #declare tilea=
  344. box {<-20,-20,0><20,20,10>
  345.         texture{Polished_Brass}
  346.         texture{pigment{ 
  347.         image_map{gif "tile1.gif" once filter 255,1 filter 0,.5}
  348.         scale<40,40,40>
  349.         translate<-20,-20,0>
  350.         }}
  351.         normal{
  352.         bump_map{gif "tile1.gif" once bump_size 5}
  353.         scale<2,2,2>
  354.         translate<-1,-1,0>
  355.         }
  356. }
  357.  
  358. #declare tileb=
  359. box {<-20,-20,0><20,20,10>
  360.         texture{Polished_Brass}
  361.         texture{pigment{ 
  362.         image_map{gif "tile2.gif" once filter 255,1 filter 0,.5}
  363.         scale<40,40,40>
  364.         translate<-20,-20,0>
  365.         }}
  366.         normal{
  367.         bump_map{gif "tile2.gif" once bump_size 5}
  368.         scale<2,2,2>
  369.         translate<-1,-1,0>
  370.         }
  371. }
  372.  
  373. #declare tilec=
  374. union {
  375.         object {tilea translate<0,0,-250>}
  376.         object {tileb translate<0,0,-250> rotate<0,9,0>}
  377. }
  378.  
  379. #declare tiled=
  380. union {
  381.         object {tilea translate<0,0,-210>}
  382.         object {tileb translate<0,0,-210> rotate<0,11.25,0>}
  383. }
  384.  
  385. #declare tile_set1=
  386. union {
  387. object {tilec}
  388. object {tilec rotate<0,18,0>}
  389. object {tilec rotate<0,36,0>}   
  390. object {tilec rotate<0,54,0>}   
  391. object {tilec rotate<0,72,0>}   
  392. }
  393.  
  394. #declare big_ring=
  395. union {
  396. object {tile_set1}
  397. object {tile_set1 rotate<0,90,0>}
  398. object {tile_set1 rotate<0,180,0>}
  399. object {tile_set1 rotate<0,270,0>}
  400. }
  401.  
  402. #declare tile_set2=
  403. union {
  404. object {tiled}
  405. object {tiled rotate<0,22.5,0>}
  406. object {tiled rotate<0,45,0>}
  407. object {tiled rotate<0,67.5,0>}
  408. }
  409.  
  410. #declare small_ring=
  411. union {
  412. object {tile_set2}
  413. object {tile_set2 rotate<0,90,0>}
  414. object {tile_set2 rotate<0,180,0>}
  415. object {tile_set2 rotate<0,270,0>}
  416. }
  417.  
  418. #declare tilea2=
  419. box {<-20,-20,0><20,20,10> texture{Polished_Brass}}
  420.  
  421. #declare tileb2=
  422. box {<-20,-20,0><20,20,10> texture{Polished_Brass}}
  423.  
  424. #declare tilec2=
  425. union {
  426.         object {tilea2 translate<0,0,-250>}
  427.         object {tileb2 translate<0,0,-250> rotate<0,9,0>}
  428. }
  429.  
  430. #declare tiled2=
  431. union {
  432.         object {tilea2 translate<0,0,-210>}
  433.         object {tileb2 translate<0,0,-210> rotate<0,11.25,0>}
  434. }
  435.  
  436. #declare tile_set12=
  437. union {
  438. object {tilec2}
  439. object {tilec2 rotate<0,18,0>}
  440. object {tilec2 rotate<0,36,0>}   
  441. object {tilec2 rotate<0,54,0>}   
  442. object {tilec2 rotate<0,72,0>}   
  443. }            
  444.  
  445. #declare big_ring2=
  446. union {
  447. object {tile_set12}
  448. object {tile_set12 rotate<0,90,0>}
  449. object {tile_set12 rotate<0,180,0>}
  450. object {tile_set12 rotate<0,270,0>}
  451. }
  452.  
  453. #declare tile_set22=
  454. union {
  455. object {tiled2}
  456. object {tiled2 rotate<0,22.5,0>}
  457. object {tiled2 rotate<0,45,0>}
  458. object {tiled2 rotate<0,67.5,0>}
  459. }
  460.  
  461. #declare small_ring2=
  462. union {
  463. object {tile_set22}
  464. object {tile_set22 rotate<0,90,0>}
  465. object {tile_set22 rotate<0,180,0>}
  466. object {tile_set22 rotate<0,270,0>}
  467. }
  468.  
  469. #declare lamp_base=
  470. union {
  471.         sphere {<0,0,0>,395 texture{Polished_Brass} normal {dents .75 scale<15,15,15>}}
  472.         cylinder {<0,-50,0><0,150,0>,407}
  473.         sphere {<0,-374,0>,150}
  474.         cylinder {<0,346,0><0,426,0>,250}
  475.         difference {
  476.                 union {
  477.                         cylinder {<0,526,0><0,566,0>,250}
  478.                         cylinder {<0,566,0><0,586,0>,225}
  479.                 }
  480.                 cylinder {<0,0,0><0,700,0>,150}
  481.         }
  482.         object {fin}
  483.         object {fin rotate <0,22.5,0>}
  484.         object {fin rotate <0,45,0>}
  485.         object {fin rotate <0,67.5,0>}
  486.         object {fin rotate <0,90,0>}
  487.         object {fin rotate <0,112.5,0>}
  488.         object {fin rotate <0,135,0>}
  489.         object {fin rotate <0,157.5,0>}
  490.         object {fin rotate <0,180,0>}
  491.         object {fin rotate <0,202.5,0>}
  492.         object {fin rotate <0,225,0>}
  493.         object {fin rotate <0,247.5,0>}
  494.         object {fin rotate <0,270,0>}
  495.         object {fin rotate <0,292.5,0>}
  496.         object {fin rotate <0,315,0>}
  497.         object {fin rotate <0,337.5,0>}
  498.         object {trim}
  499.         object {trim rotate <0,22.5,0>}
  500.         object {trim rotate <0,45,0>}
  501.         object {trim rotate <0,67.5,0>}
  502.         object {trim rotate <0,90,0>}
  503.         object {trim rotate <0,112.5,0>}
  504.         object {trim rotate <0,135,0>}
  505.         object {trim rotate <0,157.5,0>}
  506.         object {trim rotate <0,180,0>}
  507.         object {trim rotate <0,202.5,0>}
  508.         object {trim rotate <0,225,0>}
  509.         object {trim rotate <0,247.5,0>}
  510.         object {trim rotate <0,270,0>}
  511.         object {trim rotate <0,292.5,0>}
  512.         object {trim rotate <0,315,0>}
  513.         object {trim rotate <0,337.5,0>}
  514.         object {big_ring translate<0,326,0>}
  515.         object {small_ring translate<0,-354.5,0>}
  516.         light_source {<0,530,0> color soft_light}
  517. }
  518.  
  519. #declare lamp_base2=
  520. union {
  521.         sphere {<0,0,0>,395 texture{Polished_Brass} normal {dents .75 scale<15,15,15>}}
  522.         cylinder {<0,-50,0><0,150,0>,407}
  523.         sphere {<0,-374,0>,150}
  524.         cylinder {<0,346,0><0,426,0>,250}
  525.         difference {
  526.                 union {
  527.                         cylinder {<0,526,0><0,566,0>,250}
  528.                         cylinder {<0,566,0><0,586,0>,225}
  529.                 }
  530.                 cylinder {<0,0,0><0,700,0>,150}
  531.         }
  532.         object {fin}
  533.         object {fin rotate <0,22.5,0>}
  534.         object {fin rotate <0,45,0>}
  535.         object {fin rotate <0,67.5,0>}
  536.         object {fin rotate <0,90,0>}
  537.         object {fin rotate <0,112.5,0>}
  538.         object {fin rotate <0,135,0>}
  539.         object {fin rotate <0,157.5,0>}
  540.         object {fin rotate <0,180,0>}
  541.         object {fin rotate <0,202.5,0>}
  542.         object {fin rotate <0,225,0>}
  543.         object {fin rotate <0,247.5,0>}
  544.         object {fin rotate <0,270,0>}
  545.         object {fin rotate <0,292.5,0>}
  546.         object {fin rotate <0,315,0>}
  547.         object {fin rotate <0,337.5,0>}
  548.         object {trim}
  549.         object {trim2 rotate <0,22.5,0>}
  550.         object {trim2 rotate <0,45,0>}
  551.         object {trim2 rotate <0,67.5,0>}
  552.         object {trim2 rotate <0,90,0>}
  553.         object {trim2 rotate <0,112.5,0>}
  554.         object {trim2 rotate <0,135,0>}
  555.         object {trim2 rotate <0,157.5,0>}
  556.         object {trim2 rotate <0,180,0>}
  557.         object {trim2 rotate <0,202.5,0>}
  558.         object {trim2 rotate <0,225,0>}
  559.         object {trim2 rotate <0,247.5,0>}
  560.         object {trim2 rotate <0,270,0>}
  561.         object {trim2 rotate <0,292.5,0>}
  562.         object {trim2 rotate <0,315,0>}
  563.         object {trim2 rotate <0,337.5,0>}
  564.         object {big_ring2 translate<0,326,0>}
  565.         object {small_ring2 translate<0,-354.5,0>}
  566.         light_source {<0,530,0> color soft_light}
  567. }
  568.  
  569.  
  570. #declare lamp_arm=
  571. union{
  572.         difference {
  573.                 cylinder {<0,276.3821,25><0,276.3821,-25>,676.2244}
  574.                 cylinder {<0,276.3821,30><0,276.3821,-30>,666.2244}
  575.                 box {<-9000,0,-9000><9000,9000,9000> rotate<0,0,21> translate<-720,0,0>}
  576.                 box {<-9000,0,-9000><9000,9000,9000> rotate<0,0,-21> translate<720,0,0>}
  577.         }
  578.         difference {
  579.                 cylinder {<-720,0,25><-720,0,-25>,105}
  580.                 cylinder {<-720,0,30><-720,0,-30>,95}
  581.                 box {<-9000,0,-9000><9000,-9000,9000> rotate<0,0,21> translate<-720,0,0>}
  582.         }
  583.         difference {
  584.                 cylinder {<720,0,25><720,0,-25>,105}
  585.                 cylinder {<720,0,30><720,0,-30>,95}
  586.                 box {<-9000,0,-9000><9000,-9000,9000> rotate<0,0,-21> translate<720,0,0>}
  587.         }
  588.         difference {
  589.                 cylinder {<440.2111,-133.4456,25><440.2111,-133.4456,-25>,65}
  590.                 cylinder {<440.2111,-133.4456,30><440.2111,-133.4456,-30>,55}
  591.         }
  592.         difference {
  593.                 cylinder {<-440.2111,-133.4456,25><-440.2111,-133.4456,-25>,65}
  594.                 cylinder {<-440.2111,-133.4456,30><-440.2111,-133.4456,-30>,55}
  595.         }
  596. }
  597.  
  598. #declare link=
  599. union {
  600.         torus {50,10 sturm rotate <90,0,0>}
  601.         box {<-25,42.5,12.5><25,97.5,22.5>}
  602.         box {<-25,42.5,-12.5><25,97.5,-22.5>}
  603.         difference {
  604.                 cylinder {<25,42.5,0><-25,42.5,0>,22.5}
  605.                 cylinder {<30,42.5,0><-30,42.5,0>,12.5}
  606.                 box {<40,42.5,40><-40,-100,-40>}
  607.         }
  608.         difference {
  609.                 cylinder {<25,97.5,0><-25,97.5,0>,22.5}
  610.                 cylinder {<30,97.5,0><-30,97.5,0>,22.5}
  611.                 box {<40,97.5,40><-40,0,-40>}
  612.         }
  613. }
  614.  
  615. #declare chain1=
  616. union {
  617.         object {link}
  618.         object {link translate <0,140,0>}
  619.         object {link translate <0,280,0>}
  620.         object {link translate <0,420,0>}
  621.         object {link translate <0,560,0>}
  622.         object {link translate <0,700,0>}
  623.         object {link translate <0,840,0>}
  624.         object {link translate <0,980,0>}
  625.         object {link translate <0,1120,0>}
  626.         object {link translate <0,1260,0>}
  627.         object {link translate <0,1400,0>}
  628. }
  629.  
  630. #declare chain2=
  631. union {
  632.         object {link}
  633.         object {link translate <0,140,0>}
  634.         object {link translate <0,280,0>}
  635.         object {link translate <0,420,0>}
  636.         object {link translate <0,560,0>}
  637.         object {link translate <0,700,0>}
  638.         object {link translate <0,840,0>}
  639.         object {link translate <0,980,0>}
  640.         object {link translate <0,1120,0>}
  641.         object {link translate <0,1260,0>}
  642. }
  643.  
  644. #declare lamp=
  645. union {
  646. object {lamp_base texture{Polished_Brass}}
  647. object {lamp_arm texture{Polished_Brass}}
  648. object {lamp_arm texture{Polished_Brass} rotate<0,90,0>}
  649. object {chain1 texture{Polished_Brass} rotate<25,0,0> translate<0,124.1254,-677.9259>}
  650. object {chain1 texture{Polished_Brass} rotate<25,0,0> translate<0,124.1254,-677.9259> rotate<0,90,0>}
  651. object {chain1 texture{Polished_Brass} rotate<25,0,0> translate<0,124.1254,-677.9259> rotate<0,180,0>}
  652. object {chain1 texture{Polished_Brass} rotate<25,0,0> translate<0,124.1254,-677.9259> rotate<0,270,0>}
  653. object {chain2 texture{Polished_Brass} translate<0,1511.3213,0>}
  654. torus {45.055,10 sturm texture{Polished_Brass} translate<0,1481.3213,0>}
  655. torus {75,10 sturm texture{Polished_Brass} rotate<90,0,0> translate<0,2936.3213,0>}
  656. box {<100,2950,100><-100,3025,-100> texture{Polished_Brass}}
  657. }
  658.  
  659. #declare lamp2=
  660. union {
  661. object {lamp_base2 texture{Polished_Brass}}
  662. object {lamp_arm texture{Polished_Brass}}
  663. object {lamp_arm texture{Polished_Brass} rotate<0,90,0>}
  664. object {chain1 texture{Polished_Brass} rotate<25,0,0> translate<0,124.1254,-677.9259>}
  665. object {chain1 texture{Polished_Brass} rotate<25,0,0> translate<0,124.1254,-677.9259> rotate<0,90,0>}
  666. object {chain1 texture{Polished_Brass} rotate<25,0,0> translate<0,124.1254,-677.9259> rotate<0,180,0>}
  667. object {chain1 texture{Polished_Brass} rotate<25,0,0> translate<0,124.1254,-677.9259> rotate<0,270,0>}
  668. object {chain2 texture{Polished_Brass} translate<0,1511.3213,0>}
  669. torus {45.055,10 sturm texture{Polished_Brass} translate<0,1481.3213,0>}
  670. torus {75,10 sturm texture{Polished_Brass} rotate<90,0,0> translate<0,2936.3213,0>}
  671. box {<100,2950,100><-100,3025,-100> texture{Polished_Brass}}
  672. }
  673.  
  674. /* THE REPEATING BAY */
  675.  
  676. #declare bay=
  677. union{
  678. box {<-7800,-40000,-300><-6600,200000,300> texture{Stone8 scale <600,600,600>} texture{tex3}}
  679. box {<-600,-40000,-300><600,200000,300> texture{Stone8 scale <600,600,600>} texture{tex3}}
  680. box {<6600,-40000,-300><7800,200000,300> texture{Stone8 scale <600,600,600>} texture{tex3}}
  681. box {<13800,-40000,-300><15000,200000,300> texture{Stone8 scale <600,600,600>} texture{tex3}}
  682.  
  683. object {main_floor}
  684. box {<0,-40000,-2500><600,-5,2500> texture{Stone8 scale <600,600,600>} texture{tex3}}
  685.  
  686. box {<-6600,-40000,250><-6150,3539.9293,-250> texture{Stone8 scale <600,600,600>} texture{tex3}}
  687. box {<-1050,-40000,250><-600,1929.2342,-250> texture{Stone8 scale <600,600,600>} texture{tex3}}
  688. box {<600,-40000,250><1050,1607.6952,-250> texture{Stone8 scale <600,600,600>} texture{tex3}}
  689. box {<6150,-40000,250><6600,0,-250> texture{Stone8 scale <600,600,600>} texture{tex3}}
  690. box {<7800,-40000,250><8250,-321.539,-250> texture{Stone8 scale<600,600,600>} texture{tex3}}
  691.  
  692. object {arch translate <-4563.3807,7629.7207,0>}
  693. object {arch translate <-4563.3807,2736.9270,0>}
  694. object {arch translate <2636.6193,807.6929,0>}
  695. object {arch translate <2636.6193,5700.4865,0>}
  696. object {arch translate <2636.6193,16000,0>}
  697. object {arch translate <9836.6193,-1121.5413,0>}
  698.  
  699.  
  700. object {column texture{Stone8 scale<600,600,600>} rotate <0,90,0> translate <-6400,3536.9293,0>}
  701. object {column texture{Stone8 scale<600,600,600>} rotate <0,90,0> translate <-6400,8429.7230,0>}
  702. object {column texture{Stone8 scale<600,600,600>} rotate <0,90,0> translate <-800,1929.2342,0>}
  703. object {column texture{Stone8 scale<600,600,600>} rotate <0,90,0> translate <-800,6822.0278,0>}
  704. object {column texture{Stone8 scale<600,600,600>} rotate <0,90,0> translate <800,1607.6952,0>}
  705. object {column texture{Stone8 scale<600,600,600>} rotate <0,90,0> translate <800,6500.4888,0>}
  706. object {column texture{Stone8 scale<600,600,600>} rotate <0,90,0> translate <6400,0,0>}
  707. object {column texture{Stone8 scale<600,600,600>} rotate <0,90,0> translate <6400,4892.7936,0>}
  708. object {column texture{Stone8 scale<600,600,600>} rotate <0,90,0> translate <8000,-321.539,0>}
  709.  
  710. }
  711.  
  712. /* SPECIAL LAMP GROUP */
  713.  
  714. #declare lamp_group=
  715. union {
  716. object {lamp2 translate<3600,1799.3814,0>}
  717. object {lamp2 translate<-3600,3728.6156,0>}
  718. }
  719.  
  720. /* THE FINAL SCENE */
  721.  
  722. object {lamp_group}
  723. object {lamp translate<3600,1799.3814,-5000>}
  724. object {lamp2 translate<3600,1799.3814,5000>}
  725. object {lamp2 translate<3600,1799.3814,15000>}
  726. object {lamp2 translate<3600,1799.3814,25000>}
  727. object {lamp2 translate<3600,1799.3814,45000>}
  728.  
  729. object {bay translate <0,0,-5000>}
  730. object {bay}
  731. object {bay translate <0,0,5000>}
  732. object {bay translate <0,0,10000>}
  733. object {bay translate <0,0,15000>}
  734. object {bay translate <0,0,20000>}
  735. object {bay translate <0,0,25000>}
  736. object {bay translate <0,0,30000>}
  737. object {bay translate <0,0,35000>}
  738. object {bay translate <0,0,40000>}
  739. object {bay translate <0,0,45000>}
  740. object {bay translate <0,0,50000>}
  741.  
  742. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,300>}
  743. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,5300>}
  744. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,10300>}
  745. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,15300>}
  746. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,20300>}
  747. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,25300>}
  748. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,30300>}
  749. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,35300>}
  750. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,40300>}
  751. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,45300>}
  752. object {balustrade texture{Stone8 scale <600,600,600>} translate <375,0,50300>}
  753.  
  754. object {stair translate <600,0,-4750>}
  755.  
  756. box {<-7200,-4000,-60000><-8000,20000,60000> finish {Mirror}}
  757.  
  758. plane {y,-3500 texture{Water scale<3000,3000,3000>}}
  759.  
  760. fog {color White distance 30000}
  761.  
  762. /* THE BOAT */
  763.  
  764. #declare boat_base=
  765. difference {
  766.         difference {
  767.                 intersection {
  768.                         sphere {<2812.5,0,0>,3312.5}
  769.                         sphere {<-2812.5,0,0>,3312.5}
  770.                 }
  771.                 intersection {
  772.                         sphere {<2812.5,0,0>,3212.5}
  773.                         sphere {<-2812.5,0,0>,3212.5}
  774.                 }
  775.         }
  776.         sphere {<0,7556.25,0>,7756.25}
  777. }
  778.  
  779. #declare boat_house=
  780. union {
  781.         difference {
  782.                 union {
  783.                         box {<361,0,0><-361,201,-800>}
  784.                         box {<169,169,0><-169,-169,-800> rotate<0,0,45> translate<0,201,0>}
  785.                 }
  786.                 difference {
  787.                         box {<169,169,10><-160,-160,-810> rotate<0,0,45> translate<0,101,0>}
  788.                         box {<900,101,900><-900,-900,-900>}
  789.                 }
  790.         }
  791. }
  792.  
  793. #declare boat=
  794. union {
  795. object {boat_base texture{DMFWood1 scale<600,600,900>} scale<1,.5,1>}
  796. object {boat_house texture{DMFWood3 scale<600,600,900>} translate<0,0,1750>}
  797. light_source {<0,-200,-800> color soft_light}
  798. }
  799.  
  800. object {boat rotate<0,-135,0> translate<11000,-2700,4200>}
  801.  
  802.